<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 逻辑运算符   
    // 且(&&)   或(||)   非 (!)

    // 非(!)
    // (1)  颠倒是非   1.1 !的隐式类型转换,非布尔值的数据类型 会先隐式转换为布尔值类型 再取反
    // (2)  条件翻转

    // console.log(true,!true);
    // console.log(false,!false);
    // console.log(true,!!true);
    // console.log(false,!!false);

    // 非布尔值的数据类型 会先隐式转换为布尔值类型 再取反
    // console.log(!1); // 1 => true  取反 => false
    // console.log(!3); // 3 => true  取反 => false
    // console.log(!0); // 0 => false  取反 => true
    // console.log(!"abc"); // "abc" => true  取反 => false
    // console.log(!"");   // "" => false  取反 => true
    // console.log(!null); // null => false  取反 => true
    // console.log(!undefined); // undefined => false  取反 => true
    
    
    console.log(!!!1); // 1 => true 
    console.log(!!0); // 0 => false 

    //  (2)  条件翻转
    var grade = Math.round(Math.random()*100);
    // console.log(grade,grade>=60)
    console.log(grade,!(grade>=60));    // !(grade>=60) => grade<60    
    //  grade = 99   grade>=60 => true 取反 => false
    //  grade = 9    grade>=60 => false 取反 => true


</script>
</html>